package com.zyl.blog.common.config.anno;

import com.zyl.blog.common.enums.BusinessType;
import com.zyl.blog.common.enums.OperationType;

import java.lang.annotation.*;

/**
 * @version v1.0
 * @ProjectName: Personal_Blog
 * @Package: com.zyl.common.config.anno
 * @ClassName: SysLog
 * @Description: 日志记录注解
 * @Author FinalFantasy
 * @Date 2025/2/14-10:47
 */
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface SysLog {

    /**
     * 业务操作描述（支持SPELL表达式）
     * 示例："更新用户信息，用户ID：#{#user.id}"
     */
    String value() default "";



    /**
     * 业务模块分类（需配套枚举实现）
     */
    BusinessType businessType() default BusinessType.OTHER;

    /**
     * 操作类型（需配套枚举实现）
     */
    OperationType operationType() default OperationType.MANAGE;

    /**
     * 是否记录方法参数（敏感数据需关闭）
     */
    boolean recordParams() default true;

    /**
     * 是否记录返回结果（大数据结果建议关闭）
     */
    boolean recordResult() default false;
}